import request from './request';

/**
 * 获取培训列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页条数
 * @param {string} params.keyword - 关键词
 * @param {number} params.status - 状态
 * @returns {Promise}
 */
export function listTrainings(params) {
  return request({
    url: '/trainings',
    method: 'get',
    params
  });
}

/**
 * 创建培训
 * @param {Object} data - 培训信息
 * @param {string} data.title - 培训标题
 * @param {string} data.description - 培训描述
 * @param {string} data.startDate - 开始日期
 * @param {string} data.endDate - 结束日期
 * @param {number} data.maxParticipants - 最大参与人数
 * @param {string} data.location - 培训地点
 * @returns {Promise}
 */
export function createTraining(data) {
  return request({
    url: '/trainings',
    method: 'post',
    data
  });
}

/**
 * 获取培训详情
 * @param {number} id - 培训ID
 * @returns {Promise}
 */
export function getTrainingDetail(id) {
  return request({
    url: `/trainings/${id}`,
    method: 'get'
  });
}

/**
 * 更新培训
 * @param {number} id - 培训ID
 * @param {Object} data - 培训信息
 * @returns {Promise}
 */
export function updateTraining(id, data) {
  return request({
    url: `/trainings/${id}`,
    method: 'put',
    data
  });
}

/**
 * 发布培训
 * @param {number} id - 培训ID
 * @returns {Promise}
 */
export function publishTraining(id) {
  return request({
    url: `/trainings/${id}/publish`,
    method: 'post'
  });
}

/**
 * 取消培训
 * @param {number} id - 培训ID
 * @returns {Promise}
 */
export function cancelTraining(id) {
  return request({
    url: `/trainings/${id}/cancel`,
    method: 'post'
  });
}

/**
 * 报名培训
 * @param {number} id - 培训ID
 * @returns {Promise}
 */
export function enrollTraining(id) {
  return request({
    url: `/trainings/${id}/enroll`,
    method: 'post'
  });
}

/**
 * 获取培训课程列表
 * @param {number} id - 培训ID
 * @returns {Promise}
 */
export function listCourses(id) {
  return request({
    url: `/trainings/${id}/courses`,
    method: 'get'
  });
}

/**
 * 添加培训课程
 * @param {number} id - 培训ID
 * @param {Object} data - 课程信息
 * @param {string} data.title - 课程标题
 * @param {string} data.description - 课程描述
 * @param {string} data.startTime - 开始时间
 * @param {string} data.endTime - 结束时间
 * @param {string} data.trainer - 培训师
 * @returns {Promise}
 */
export function addCourse(id, data) {
  return request({
    url: `/trainings/${id}/courses`,
    method: 'post',
    data
  });
}

/**
 * 更新培训课程
 * @param {number} id - 培训ID
 * @param {number} courseId - 课程ID
 * @param {Object} data - 课程信息
 * @returns {Promise}
 */
export function updateCourse(id, courseId, data) {
  return request({
    url: `/trainings/${id}/courses/${courseId}`,
    method: 'put',
    data
  });
}